package com.itheima.demo4InputStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

public class FileInputStreamDemo1 {
    public static void main(String[] args) throws IOException {
//        文件字节输入流读取文件中的字节数组到内存中来
//        1、创建文件字节输入流管道与源文件接通
        InputStream is = new FileInputStream("day03-file-io\\src\\zsx1");//简化写法
//        2、开始读取文件中的字节并输出。
//        定义一个变量记住每次读取的一个字节
        int b;
        while((b=is.read())!=-1){
//            System.out.println(b);
//            System.out.print((char)b);
        }//垃圾
        //每次读一个字节性能差，读取汉字输出会乱码
        int c;
        while((c=is.read())!=-1){
//            System.out.println(b);
//            System.out.print((char)c);
        }
//        2、开始读取文件中的字节并输出：每次取出多个字节
        InputStream is2 = new FileInputStream("day03-file-io\\src\\zsx1");
        byte[] buffer=new byte[3];
//        定义一个变量记住每次读取的字节个数
        int len;
        while((len=is2.read(buffer))!=-1){
            String str=new String(buffer,0,len);
            System.out.println(str);
        }
//        每次读取多个字节，性能得到提升，因为每次读取的字节个数是固定的，可以减少内存的申请和释放。
//        依然无法避免读取汉字的乱码问题。存在截断汉子字节的可能性。
    }
}
